package edu.zzu.service;

import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;

/**
 * @Description:
 * @Author: GaoPeng
 * @Date: 2021/4/20 18:29
 */
@Service
@CrossOrigin
@RequestMapping("/userService")
public interface UserService {

    /**
     * 登录验证
     * @param tel 手机号作为用户名
     * @param password 密码
     * @return 用户名和密码匹配返回true，否则返回false
     */
    @PostMapping(value="/ifPermittedLogin",produces = {"application/json;charset=utf-8"})
    boolean ifPermittedLogin(@RequestParam String tel,@RequestParam String password);

    /**
     * 验证传入的id是否存在
     * @param id
     * @return 存在返回true，否则返回false
     */
    @GetMapping("/checkIfUserExistById/{id}")
    boolean checkIfUserExistById(@PathVariable Long id);

    /**
     * 通过手机号验证用户是否存在，手机号不可重复
     * @param tel
     * @return 存在返回true
     */
    @GetMapping("/checkIfUserExistByTel/{tel}")
    boolean checkIfUserExistByTel(@PathVariable String tel);

    /**
     * 注册用户
     * @param id 自增id，建议传入空值（例如id:""，不能传null，null会被认为是一个字符串）
     * @param password
     * @param name 用户姓名：张三
     * @param role 用户角色，0代表普通用户，1代表员工
     * @param status 登录状态，0表示未登录，1表示当前帐户已经登录
     * @param tel 手机号
     * @param transNodeId 员工属于哪个转运节点，如果是普通用户，该字段可以不填（传入空值）
     */
    @PostMapping("/register")
    void register(@RequestParam("id") Long id, @RequestParam("password")String password,@RequestParam("name")String name,
    @RequestParam("role")int role,@RequestParam("status")int status,@RequestParam("tel") String tel,
                  @RequestParam("transNodeId") Long transNodeId);

    /**
     * 修改密码
     * @param id
     * @param newPassword
     * @return 修改成功返回true
     */
    @PostMapping("/modifyPassword")
    boolean modifyPassword(@RequestParam("id") Long id,@RequestParam("newPassword")String newPassword);

    /**
     * 通过电话号码获取手机号
     * @param tel
     * @return
     */
    @GetMapping("getUserByTel/{tel}")
    String getUserByTel(@PathVariable String tel);

    /**
     * 查询sourceNode有没有员工
     * @param sourceNode
     * @return
     */
    @GetMapping("isSourceNodeHasUser/{sourceNode}")
    Boolean isSourceNodeHasUser(@PathVariable Long sourceNode);


}
